From eefaeb827584c6a6f17726fe1e1f8258276d0137 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 8 Jan 2008 14:31:23 +0000 Subject: [PATCH] hvm: time: Fixes to 'SYNC' (no_missed_ticks_pending) timer handling. Based on a patch by Dave Winchell Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/vpt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index 2879a66d55..16f886647d 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -167,6 +167,7 @@ static void pt_timer_fn(void *data) pt_lock(pt); pt->pending_intr_nr++; + pt->do_not_freeze = 0; if ( !pt->one_shot ) { @@ -253,7 +254,6 @@ void pt_intr_post(struct vcpu *v, struct hvm_intack intack) return; } - pt->do_not_freeze = 0; pt->irq_issued = 0; if ( pt->one_shot ) @@ -264,7 +264,8 @@ void pt_intr_post(struct vcpu *v, struct hvm_intack intack) } else { - if ( mode_is(v->domain, one_missed_tick_pending) ) + if ( mode_is(v->domain, one_missed_tick_pending) || + mode_is(v->domain, no_missed_ticks_pending) ) { pt->last_plt_gtime = hvm_get_guest_time(v); pt->pending_intr_nr = 0; /* 'collapse' all missed ticks */ -- 2.30.2